﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Main_Othello_Game
{
    public class Container
    {
        private FormPanel fPanel = new FormPanel();
        private FormMain fMain = new FormMain();
        private FormConnect fConnect = new FormConnect();
        private FormPlayDisplay fPlayDisplay = new FormPlayDisplay();
        private FormResult fResult = new FormResult(FormPlayDisplay.ResultF);

        #region 定数
        //各画面に割り振られている番号
        private const int MAINSCREEN = 1;
        private const int CONNECTSCREEN = 2;
        private const int PLAYSCREEN = 3;
        private const int RESULTSCREEN = 4;
        #endregion

        public FormPanel PanelForm { get { return fPanel; } }

        public Container()
        {
        }

        public enum DialogName
        {
            //ダイアログの設定？わからｎ
            //MainDialog = 0,
            //MainScreen,
            //NumberInput,
            //PlayGameScreen,
            //ResultScreen

        }

        public void Change(int iNum)
        {

            fPanel.pnlMain.Controls.Clear();

            Form form = null;
            switch (iNum)
            {
                //メイン画面
                case MAINSCREEN:
                    form = fMain;
                    break;
                //数値入力画面
                case CONNECTSCREEN:
                    form = fConnect;
                    break;
                //プレイ画面
                case PLAYSCREEN:
                    form = fPlayDisplay;
                    break;
                //結果画面
                case RESULTSCREEN:
                    FormResult fResult = new FormResult(FormPlayDisplay.ResultF);       //引数のリロード
                    form = fResult;
                    break;
            }

            //フォームが引き渡しが実行
            if (form != null)
            {
                // TopLevelコントロールでないようにする。
                form.TopLevel = false;
                // 外枠を消す.
                form.FormBorderStyle = FormBorderStyle.None;
                // 配置されているコントロールを表示する.
                form.Visible = true;
                fPanel.pnlMain.Controls.Add(form);
            }

        }
    }
}
